package com.quarkus.demo;

import com.demo.core.entity.R;
import io.quarkus.redis.datasource.RedisDataSource;
import jakarta.inject.Inject;
import jakarta.ws.rs.GET;
import jakarta.ws.rs.Path;
import jakarta.ws.rs.Produces;
import jakarta.ws.rs.QueryParam;
import jakarta.ws.rs.core.MediaType;

@Path("/cache")
@Produces(MediaType.APPLICATION_JSON)
public class CacheResource {

    String key = "quarkus_test_key";
    @Inject
    RedisDataSource redisDataSource;

    @GET
    @Path("/set")
    public R<Boolean> set(@QueryParam("value") String value) {
        redisDataSource.value(String.class).set(key, value);
        return R.ok();
    }

    @GET
    @Path("/get")
    public R<String> get() {
        return R.ok(redisDataSource.value(String.class).get(key));
    }


    @GET
    @Path("/remove")
    public R<Boolean> remove(){
        return R.ok(redisDataSource.key().del(key)>0);
    }

}
